package handler

import (
	"log"
	"time"
)

// 启动调度器
func Start() {
	// 启动客户端健康检查
	go StartClientHealthCheck()

	// 启动定时任务（每秒检查一次未执行任务）
	ticker := time.NewTicker(1 * time.Second)
	defer ticker.Stop()

	log.Println("调度器启动，开始监控未执行任务...")

	for range ticker.C {
		// 查询未执行且到时间的任务
		tasks, err := GetPendingTasks()
		if err != nil {
			log.Printf("查询未执行任务失败: %v", err)
			continue
		}

		if len(tasks) > 0 {
			log.Printf("发现 %d 个待执行任务", len(tasks))

			// 获取客户端统计信息
			stats := GetClientStats()
			log.Printf("客户端状态 - 总数: %d, 忙碌: %d, 空闲: %d",
				stats["total_clients"], stats["busy_clients"], stats["idle_clients"])
		}

		// 分发任务给客户端
		for _, task := range tasks {
			log.Printf("尝试分发任务 %d: %s", task.ID, task.Title)
			if err := DispatchTask(task); err != nil {
				log.Printf("任务 %d 分发失败: %v", task.ID, err)
			}
		}
	}
}
